package com.woniu.smart.mapper;

import com.woniu.smart.dto.BuildingDTO;
import com.woniu.smart.entity.Building;
import com.woniu.smart.vo.BuildingVo;
import com.woniu.smart.vo.EChartsBuildingVO;

import java.util.List;

/**
 * 楼栋的mapper接口
 *
 * @author 晨星
 */
public interface BuildingMapper {

    /**
     * 查询所有楼栋信息
     *
     * @return java.util.List<com.woniu.smart.entity.Building>
     * @param buildingDTO 查询所有的视图类
     * @author 晨星
     * @date 2022/10/20 14:21
     **/
    List<BuildingVo> selectAll(BuildingDTO buildingDTO);

    /**
     *根据id删除楼栋
     *
     * @author 晨星
     * @date 2022/10/21 14:19
     * @param id 主键id
     * @return int
     **/
    int deleteByPrimaryKey(Long id);

    /**
     *根据id批量删除楼栋
     *
     * @author 晨星
     * @date 2022/10/21 14:19
     * @param buildingIds 批量的楼栋主键id
     * @return int
     **/
    int deleteBatch(List<Integer> buildingIds);

    /**
     * 选择性新增楼栋信息
     *
     * @author 晨星
     * @date 2022/10/21 14:32
     * @param record 楼栋的实体类
     * @return int
     **/
    int insertSelective(Building record);

    /**
     * 根据id查询楼栋
     *
     * @author 晨星
     * @date 2022/10/21 14:30
     * @param id 主键id
     * @return com.woniu.smart.entity.Building
     **/
    Building selectByPrimaryKey(Long id);

    /**
     * 根据主键ID选择性修改楼栋信息
     *
     * @author 晨星
     * @date 2022/10/21 14:33
     * @param record 楼栋的实体类
     * @return int
     **/
    int updateByPrimaryKeySelective(Building record);

    /**
     * @Description 根据楼宇id查询包含的楼层数
     * @Parm a
     * @Retrn a
     * @Author WangMr
     * @Date Create by 2022/10/31 16:36
     */
    List<EChartsBuildingVO> selectGroupByBuilding();
}
